﻿using System;

class SubsetSums
{
    static void Main()
    {
        //C# Fundamentals 2011/2012 Part 1 - Sample Exam

        long sumNumber = long.Parse(Console.ReadLine());
        byte numbers = byte.Parse(Console.ReadLine());
        int count = 0;
        //long tempSum = 0;

        long[] array = new long[numbers];   //четем числата от конзолата в масив
        for (int i = 0; i < numbers; i++)
        {
            array[i] = long.Parse(Console.ReadLine());
        }

        int maxNumberOfCombinations = (int)Math.Pow(2, numbers) - 1;
        for (int i = 1; i <= maxNumberOfCombinations; i++) //минава през всяка една комбинация
        {
            long currentSum = 0;
            for (int j = 0; j < numbers; j++) // проверява всеки бит в комбинация i
            {
                if (((i >> j) & 1) == 1)    // and if bit is set includes corresponding number into the sum
                {
                    currentSum = currentSum + array[j];
                }                
            }
            if (currentSum == sumNumber)
            {
                count++;
            }            
        }
        Console.WriteLine(count);
    }
}

